﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UM_SERVER.Session;

namespace UM_SERVER.ProcessModel
{
    /// <summary>
    ///      会话操作处理层
    /// </summary>
    class SessionProcessModel
    {
        private static String SessionCode = "";
        /// <summary>
        ///      添加新的用户会话 [自动检测是否曾经拥有会话，并且自动覆盖]
        /// </summary>
        /// <param name="user">新用户</param>
        /// <returns>返回null , 则表示添加失败</returns>
        public static String AddNewUserBaseSession(User.User user)
        {
            //如果当前用户已经登陆，并且在会话队列中
            if(Globle.sessionManager.Equals(user))
            {
                //强行下线原用户，用新用户替代旧的
                ISession baseSession =  Globle.sessionManager.CoverSession(user);
                if (baseSession != null)
                {
                    return baseSession.GetSessioCode();
                }
                return null;
            }
            //不存在
            else
            {
                BaseSession baseSession = new BaseSession(user.Key, DateTime.MaxValue, user);
                //直接加入
                Globle.sessionManager.Add(baseSession);
                return baseSession.GetSessioCode();
            }
        }
    }
}
